package cn.nanmeishu;

import java.util.HashSet;
import java.util.Set;

/**
 * 模拟字符串常量池溢出
 */
public class Model4 {
    /**
     * jvm设置
     * JDK6：-XX:PermSize=3M -XX:MaxPermSize=3M
     * JDK7/JDK8:-Xms3M -Xmx3M
     * @param args
     */
    public static void main(String[] args) {
        // 使用Set保持着常量池引用，避免Full GC回收常量池行为
        Set<String> set = new HashSet<String>();
        // 在short范围内足以让3MB的PermSize产生OOM了
        int i = 0;
        while (true) {
            System.out.println(i);
            set.add(String.valueOf(i++).intern());
        }
    }
}
